#include<stdio.h>
#include<omp.h>
int main(int argc, char* argv[]){
//	单独使用for循环 
	#pragma omp for
	for(int j=0; j<4; j++){
		printf("HW,thread = %d\n",omp_get_thread_num());
	}
	/*
	result:
	HW,thread = 0
	HW,thread = 0
	HW,thread = 0
	HW,thread = 0
	*/
//	所以for要和parallel一起用才有效果,没有parallel只是在使用一个xiancheng 
	 
	 
	#pragma omp parallel for
	for(int j=0; j<4; j++){
		printf("HW,thread = %d\n",omp_get_thread_num());
	}
	/*
	result:
	HW,thread = 1
	HW,thread = 3
	HW,thread = 2
	HW,thread = 0
	*/
	
//	多线程线程一起使用 

//	改写的另一种方式 
	#pragma omp parallel
	{
		#pragma omp for
		for(int j=0; j<4; j++){
			printf("j=%d,Thread=%d\n",j,omp_get_thread_num());
		}	
		printf("\n");
	}
	/*
	j=1,Thread=1
	j=2,Thread=2
	j=3,Thread=3
	j=0,Thread=0
	*/	 
	
	
//	在一个parallel块里可以有多个for语句
	#pragma omp parallel
	{
		#pragma omp for
		for(int j=0; j<8;j++){
			printf("j=%d,Thread=%d\n",j,omp_get_thread_num());

		}
		
		#pragma omp for
		for(int j=0; j<8;j++){
			printf("j=%d,Thread=%d\n",j,omp_get_thread_num());

		}	
	} 
	/*
	j=6,Thread=6
	j=5,Thread=5
	j=7,Thread=7
	j=1,Thread=1
	j=3,Thread=3
	j=4,Thread=4
	j=2,Thread=2
	j=0,Thread=0
	j=7,Thread=7
	j=5,Thread=5
	j=3,Thread=3
	j=4,Thread=4
	j=6,Thread=6
	j=2,Thread=2
	j=1,Thread=1
	j=0,Thread=0
	*/
	
	
} 
